home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BCI NET
/
BCI NET Dec 94.iso
/
archives
/
utilities
/
packers
/
packdev1.1.lha
/
PackDev.doc
< prev
Wrap
Text File
|
1994-08-18
|
14KB
|
378 lines
Program(s): PackDev V1.1
Author: Christian Wasner
Date: 18-Aug-94
o) Version
$VER: PackDev.doc V1.1 (18-Aug-94)
i) Disclaimer
The author cannot be held liable for the suitability or accuracy of this
manual and/or the program(s) it describes. Any damage directly or
indirectly caused by the use or misuse of this manual and/or the program it
describes is the sole responsibility of the user her/him self.
ii) Copyright/Distribution
All files mentioned in iii) are (c) Copyright 1994 Christian Wasner. All
rights reserved.
These programs are FREEWARE, so no financial donations are required (but
welcome). They may be freely distributed as long as all files remain
unchanged and are included with the distribution. Distribution on disks or
CDs is permitted only on the disks or CDs from Fred Fish or the Aminet CDs.
Electronical distibution (e.g. by Aminet, mailboxes, modems) is allowed.
Packing is only allowed with LhA.
Advertisement (especially BBS ads) is tolerated as long as the total size
of these is less than 20KB. Also no profit is to be made by selling this
program. The price must not exceed the costs of disk, package and mailing,
i.e. $5 per disk or $40 per CD.
iii) Files
The following files should come along:
PackDev (16184 bytes)
PackDev.doc (13850 bytes)
iv) Documentation
Program: PackDev
Template: ACTION/A,FS=FILESYS/K/O,F=FILE/K/O,P=PACK/K/O,M=MEMTYPE/K/O,
XB=XPKBUFSIZE/K/N/O,CU=CLRUNUSED/S/O,ETDF=ETDFORMAT/S/O,
TDF=TDFORMAT/S/O
Purpose: Reading/writing data directly to filesystems with xpk support.
Specification:
With this program you can read or write data directly from/to a disk. The
blocks of the disk are read and stored into a file. When reading from a
DOS disk, only the blocks that are used are archived. When writing a file
from a DOS disk to a disk, only the blocks are written that are stored in
the archive. Optionally the data read from a disk can be packed with an
xpk packer. The program currently only has a shell interface.
All this sounds like "Oh no, yet another DMS clone", but this program can
handle any device with a filesystem (e.g. DHx:, CDx:, a RAD: of any size
etc.), DMS can only handle floppy disks or devices with the size of floppy
disks. Even Non-DOS disks can be handled (but then all blocks are read).
Another advantage of PackDev is that is doesn't use stolen code like the
authors of DMS do (see below). PackDev supports the xpk packer system thus
it's much more flexible than DMS. You can use any xpk packer you like,
e.g. a disk with pictures or sounds or <insert here> can be packed with an
xpk packer suited for pictures or sounds or <insert here again>. When
comparing size, you see that DevPack is only 16 KB long ! If you pack it
with PowerPacker, it would be less than 10 KB !
A disk is read as follows:
1. Read device data from DOS
2. Check if the file system of the disk is supported (currently OFS,
FFS, OFS International, FFS International, OFS Directory Dache and
FFS Directory Cache are supported)
3. Inhibit device
If filesystem is supported:
4. Read root block (contains location of block allocation map = BAM)
5. Read BAM and store it (after packing, if specified)
5. Read used blocks and store them (after packing, if specified)
6. Quit
If file system is not supported
4. Read all blocks and store them (after packing, if specified)
5. Quit
Writing functions similarly.
When writing to a filesystem, DevPack will only allow filesystems that are
exactly of the same partition size, block size and number of reserved
blocks. If the disk should be formatted, the track size of the disk (e.g.
11 blocks for a floppy disk) must currently be equal, too.
The program can be aborted at any time with CTRL-C. When doing this while
data is processed, you have to confirm this.
The following parameters are supported:
ACTION
======
This parameter must be specified. The following types of action are possible:
READ - Read from a disk into a file
WRITE - Write from a file onto a disk
VIEWFILE - View a file
VIEWFILESYS - View various disk parameters
FILESYS (or FS)
===============
This parameter must be specified along with a DOS device name if and only
if ACTION is not set to VIEWFILE It specifies the disk that is to be
handled (with ":") etc. Note that
copy-protected disks cannot be handled.
Examples:
FS DH0:
FS RAD:
FS CD0:
FILE (or F)
===========
This parameter must be specified along with a filename if and only if
ACTION is not set to VIEWFILESYS. It specifies the file that is to be
handled. If used when writing to the file, a suffix ".pkd" will be added
to the file name if it's not present. If used when reading from it and the
file name doesn't contain the ".pkd" suffix, it's checked first if there is
a file <name>.pkd. If this file doesn't exist then the original file name
is used.
Example:
F boo.bar (will be extended to foo.bar.pkd)
F foobar.pkd (will not be extended)
PACK (or P)
===========
This parameter is optional, but strongly suggested. It may only be
specified along with a READ action. When writing to a disk, the packer
type of the file is automatically recognized. Along with it an xpk packer
name and the efficiency can be specified (separated by a "."). The best
xpk packers for standard data are NUKE and SHRI. NUKE is less efficient
than SHRI, but much faster than SHRI. NUKE is 10-20% less efficient than
the DMS packing algorithm, but faster. When unpacking, NUKE is much faster
than DMS or SHRI. SHRI is 10-20% better than DMS, but slower. A general
rule is :The less full a disk is, the slower is DMS because DMS always
reads all blocks, even if they are not put into the archive (maybe ParCon
is afraid of "lamers" who think, DMS forgets to read them :-).
Note that some packer types ignore the efficience value.
Examples:
P NUKE.100 (Use NUKE packer with efficiency 100)
P SHRI.75 (Use SHRI packer with efficience 75)
MEMTYPE (or M)
==============
This parameter is optional. It specifies the memory type that is used for
device buffers. Some older devices may require chip memory for their
buffers. For example, under 1.3 the trackdisk.device needed chipmem
because it used the blitter to decode the data (not because the disk DMA
functions with chipmem only). Possible values are CHIP, FAST, ANY. Under
2.0+ trackdisk doesn't need chipmem any longer.
Examples:
M CHIP (chipmem will be used or program fails)
M FAST (fastmem will be used or program fails)
M ANY (default: highest-priority memory will be used)
XPKBUFSIZE (or XB)
==================
This parameter is optional and can only be specified along with a READ
action along with an xpk packer. It specifies the size of the memory
blocks in device blocks that are packed. Default is 65536 bytes. Since
some packers need a certain minimum memory block size and some packers are
more efficient with a larger size, this parameter is implemented.
Examples:
XB 200 (xpk memory block set to 200 blocks, normally 100KB)
XB 50 (xpk memory block set to 50 blocks, normally 25KB)
CLRUNUSED (or CU)
=================
This optional parameter is allowed only when writing to a disk. If set,
all unused blocks are overwritten with zeroes. This has the disadvantage
that the write operation becomes slower, but has the advantage that tools
like DiskSalv ((C) by Dave Haynie) don't find all these old file fragments
when trying to undelete an accidentally deleted file (deleted after usage
of PackDev, of course). Default is "CU not set".
Example:
CU (PackDev overwrites unused tracks with zeroes)
ETDFORMAT (or ETDF)
===================
This parameter is optional. It should be set if you want to write to an
unformatted floppy disk. It may not function if you write to a hard disk,
since this parameter causes PackDev to use a format routine that functions
with floppy disks (DFx:) but may not function with other devices (like
oktagon.device, my hd device, it took hours to find this out). The
advantage of this format routine is that label buffers can be written with
it (the place where filenotes are written into) in one row. TDFORMAT will
start an extra run for the label buffers (see below). Try it out with your
hd. For programmers: This causes PackDev to format with ETD_FORMAT.
Example
ETDF (enhanced format routine for floppies activated)
TDFORMAT (or TDF)
=================
This parameter is optional. It should not be set if you want to write to
an unformatted floppy disk. It will function if you write to a hard disk,
since this parameter causes PackDev to use the general format routine that
should function with any disk device that is supported by DOS. This
general format routine (TD_FORMAT, to be specific) is slower than the
format routine stated above, because it needs an extra run to write the
label buffers (don't ask my why I don't know). I don't suggest to use this
parameter for hard disks because they don't need to be Amiga-formatted. It
is implemented because there may exist some devices that need formatting
but don't support the enhanced routine.
Example
TDF (standard format routine activated)
Examples for usage:
Reading the disk in DF0: and storing the data into RAM:disk.pkd, packing
it with the SHRI algorithm:
PackDev READ FS DF0: F RAM:disk P SHRI.100
Writing the data (eventually packed) from DH0:DH1.pkd to DH1
PackDev WRITE FS DH1: F DH0:dh1
Writing data to an unformatted floppy disk
PackDev WRITE FS DF1: F DH0:disk ETDF
Checking the header of a .pkd file
PackDev VIEWFILE F ram:abc
Checking the dimensions and parameters of DH0:
PackDev VIEWFILESYS FS DH0:
v) Compatibility
This program needs OS V2.0+ to run. If you want to use xpk packers (very
likely), you need the xpkmaster.library and some packer sublibraries (I
suggest xpkSHRI.library and xpkNUKE.library). The xpk package and some
more sublibraries should be present in any good pd mailbox and in the
Aminet. It is not included here because it's much larger than the PackDev
package
vi) Bugs
If the disk should be formatted, the track size of the disk (e.g. 11
blocks for a floppy disk) must currently be equal to the track size of the
disk from which the file is read. This is not necessary, but coding the
thing this way is easier and faster. This is not really a bug, its better
called a misfeature.
If a pc-formatted disk should be read and no disk is present, PackDev
doesn't recognize this before the exec device is opened, i.e. the message
"device error at block <mid-of-device block>" appears instead of "Please
insert disk". This is not my fault, because the CrossDos filesystem
doesn't recognize if there is a disk in the drive. This will not be fixed,
I don't want to write special code for each filesystem that has
misfeatures.
Should you detect a bug, please tell me (email or phone). Be as specific as
you can.
vii) Future
What may be done in the future:
GUI
Device that treats an archive like a disk
Built-in packer
What will not be done in the future:
DMS compatibility (see below)
Localization (I hate those zillions of useless files, there is no support
for people who cannot speak English. This sounds arrogant, but I think,
this tool should not be used by inexperienced users anyway)
Versions for each type of processor (I made the experience that doing this
causes a negligible speedup that is not worth even writing this, but
perhaps there will be a C compiler that can do better...)
viii) my personal opinion
Note that PackDev will never support the DMS packing algorithm, because the
current authors of DMS (ParCon) use stolen code from the original DMS
(which was written from someone else who has not given up his copyrights)
and release DMS as shareware. In my opinion, they are not allowed to do
so. It's not enough to assume that you can do with copyrighted material
what you want, only because you cannot contact the real authors. It would
be OK to release DMS in the public domain, but making money with someone
else's code is called FRAUD and THEFT. It's worse than piracy - shame on
you, ParCon !!! Note that you may own pirate software if you bought a
"registered" version of DMS that has a version greater than 1.11. An
interesting consequence: It may not matter if you use a cracked version of
DMS or a "registered" version. If ParCon doesn't have the copyrights for
DMS, they cannot sue for cracking it. I've seen mailboxes that put cracked
versions of DMS into their PD area for this reason.
ix) History
V1.0: 14-Aug-94 (released)
- Initial release, no bugs known
V1.1: 18-Aug-94 (not released)
- Check for known filesystems now bulletproof
- If no disk is present when starting, it will be requested for
- Minor doc editing
x) Address
I will not give my address to the public because of bad experiences I have
heard of (getting into computers of address dealers, being blackmailed
etc.). Use phone or email (the latter is preferred). Persons I know a
little can get my address, of course.
Christian Wasner
Phone - from out of Germany: <number for Germany>40/7236349
- from within Germany: 040/7236349
Email: wasner@ifm.uni-hamburg.de
crisi@dame.zer.sub.org
If possible, use email. If you phone me, please do it from 7pm to 9pm and
don't forget that we have Mean European Time here, so 8pm for you may not
mean 8pm for me !